Je subor otvoreny inym procesom?

Otázka od: p.sestak@corag.sk

20. 7. 2004 8:20

Zdravim,
potrebujem zistit, ci je subor otvoreny inym procesom.
Problem je v tom, ze ten subor je device driver - '\\.\ZLPORTIO', fyzicky
ZLPORTIO.SYS
Bezi ako sluzba a pred tym, nez ho moj proces moze odinstalovat (cez SCM)
musim zistit, ci ho nepouziva este nejaky iny proces.
vo svojom procese ho otvaram standardne:

 Handle := createFile('\\.\ZLPORTIO',
                  GENERIC_READ or GENERIC_WRITE,
                  0,
                  nil,
                  OPEN_EXISTING, //existuje vzdy, ked je tento device
vytvoreny ako servis cez SCM
                  FILE_ATTRIBUTE_NORMAL,
                  0 );
a na citanie pouzivam DeviceIoControl. To vsetko je rutina, ale potrebujem
ho i korektne
uzavriet a odinstalovat (znovu cez SCM). Ked ho ma otvoreny este iny
proces a cez SCM
ho odinstalujem (DeleteService), tento je len oznaceny ako
SERVICE_STOP_PENDING a iny
proces si ho potom nemoze znovu nainstalovat  .

Nenasiel som nikde nejake systemove volanie, pomocou ktoreho by som
zistil ze ten
subor ma otvoreny este nejaky iny proces. Skusal som pozerat aj na
sysinternals ale
nenasiel som ziadnu radu  

Pavol Sestak
ICQ: 20989081